package com.example.drools_study.demo1;

import org.junit.Test;
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;

public class TestDemo1 {

    @Test
    public void test1(){
       /*
       步骤：
       1，获取KieServices
       2，获取KieContainer
       3。KieSession
       4，Insert fact
       5，触发规则
       6，关闭KieSession
        */

        //第一步：获取服务
        KieServices kieServices = KieServices.Factory.get();
        //第二部：通过服务获取容器
        KieContainer container = kieServices.getKieClasspathContainer();
        //第三步：通过容器获取kieSession，由kieSession去和规则引擎交互匹配
        KieSession kieSession = container.newKieSession();

        //构建事实对象
        Order order = new Order();
        order.setAmout(2000); //订单金额

        //第四步：使用session插入参数，将数据交给规则引擎，规则引擎会根据提供的数据进行规则匹配
        kieSession.insert(order);
        //第五步，执行规则引擎
        kieSession.fireAllRules();

        //第六步
        kieSession.dispose(); //关闭KieSession

        System.out.println("执行规则之后，积分："+order.getScore());

    }



}
